/**
 * \file kernel/include/bish.h
 * \author Davide Gessa
 * \date 10-22-09
 */
#ifndef BISH_H
#define BISH_H

#define BISH_CMD_NUM		32		///< Numero dei commandi
#define BISH_VAR_NUM		128		///< Numero possibile di variabili

/**
 * Struttura per l'implementazione commandi
 */
typedef struct
{
	int (*func)(int argc, char **argv);
	char name[32];
	char desc[512];
} bish_cmd_t;


/**
 * Struttura di una variabile
 */
typedef struct
{
	char name[32];
	char value[512];
} bish_var_t;


bish_var_t bish_var_list[BISH_VAR_NUM];


void bish();
int bish_help(int, char **);
int bish_true(int, char **);
int bish_false(int, char **);
int bish_set(int, char **);
int bish_unset(int, char **);
int bish_memstat(int, char **);
int bish_regdump(int, char **);
int bish_pslist(int, char **);
int bish_shutdown(int, char **);
int bish_devlist(int, char **);
int bish_driver(int, char **);
int bish_sysinfo(int, char **);
int bish_snake(int, char **);
int bish_tree(int, char **);
int bish_netconf(int, char **);
int bish_mount(int, char **);
int bish_rpncalc(int, char **);
int bish_cd(int, char **);
int bish_ls(int, char **);
int bish_mkdir(int, char **);
int bish_clear(int, char **);
int bish_read(int, char **);
int bish_rmdir(int, char **);
int bish_exec(int, char **);
int bish_write(int, char **);
int bish_irc(int, char **);
int bish_link(int, char **);
int bish_unlink(int, char **);
int bish_memdump(int, char **);


#endif

